Dynamic Language Runtime
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Le Dynamic Language Runtime (DLR) est une surcouche facilitant l'implémentation et l'interopérabilité des langages dynamiques. Le DLR permet de prendre en charge plusieurs langages. Cette technologie est utilisée par Microsoft pour la plateforme .NET et Oracle pour le langage Java.
Le CLR de Microsoft est l'équivalent de la machine virtuelle Java (JVM). Le CLR ne gère que les langages propres à Microsoft tandis que le DLR de Microsoft a été créé pour prendre en charge d'autres langages. Oracle suit la même politique d'ouverture en ajoutant à sa JVM un DLR nommé Da Vinci Machine (en) permettant la gestion d'autres langages que Java. Le terme JVM devient donc inapproprié. Des langages tiers avaient déjà été portés sur la JVM en reprenant la syntaxe de langages existants. La raison principale des DLR est de faciliter le portage de langages tiers ; il est en effet très difficile de faire fonctionner un code dynamique (Python, Ruby) sur un environnement qui est typé lors de la compilation. Le portage d'un langage sur le DLR est donc plus facile que sur le CLR.
Contents
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
DLR de Microsoft
Le DLR est une surcouche qui implémente les concepts du CLR et utilise le framework .NET. Le DLR permet le support de langages non Microsoft comme Python et Ruby alors que le CLR (sur lequel est implémenté le DLR) utilise C# et VB.NET. Les versions de Python et Ruby fonctionnant sur le DLR sont appelées IronPython et IronRuby. IronPython et IronRuby sont sous licence Apache 2.0. D'autres implémentations sont supportées comme JScript .NET et VBScript .NET.
Les premières applications fonctionnant avec les langages du DLR sont :
• Microsoft Silverlight 2.0, provenant de WPF, ne fonctionne que dans un navigateur (Mac/Intel et Windows) et supporte la DLR, IronPython et managed JScript
• Manifold System supporte tous les langages compatibles .NET (IronPython, VBScript .NET, etc.) à l’exception d’IronRuby.
L'infrastructure du DLR offert par Microsoft a mis fin au portage natif de Ruby .Netcite-ref-1[1].
Quelques langages ont été portés sur le DLR de Microsoft :
• IronPython est une implémentation en C# du langage (Python)
Le code managé JScript et C# ne sont pas supportés actuellement par le DLR.
DLR d'Oracle
Quelques langages ont été portés sur la JVM d'Oracle
Les langages supportés par le DLR d'Oracle sont
• Groovy est l'implémentation d'un langage de script reprenant la syntaxe Java et les idées de Python et Ruby
• JavaFX est la mise en œuvre d'un langage de script permettant de concurrencer Silverlight et Adobe Flex
Da Vinci est la réponse d'Oracle à Microsoft : elle permet à la machine virtuelle java de prendre en charge les langages dynamiques.
Notes et références
Voir aussi
• Da Vinci Machine (en)
Liens externes
• (en) Microsoft Dynamic Language Runtime
• (fr) Vue d'ensemble du Dynamic Language Runtime
• Portail de Microsoft
• Portail de la programmation informatique